Multi-task systems of the prior art have also incorporated the problem that if any session requires a hardware resource and/or an operating system resource, this session will reserve the resource for as long a time as is required for the use of the resource. Thus, other sessions that would need the same resource must wait for the release of this resource, because there is normally no such method by which the resource could be transferred from one session to another in such a way that this resource availability situation would be known to each session involved. For such situations, some solutions have been developed, in which the operating system uses semaphores, or the like, to prevent the use of a reserved resource from other sessions requesting the same resource.
The execution of several application sessions in wireless communication devices should be as close to real time operation as possible, for example, in view of the convenience of using a wireless device. For example, when initiating a call, a telephone directory session should be executed as quickly as possible so that the user of the wireless communication device would find the required telephone number without an undesirable delay. However, this kind of real-time operation may be difficult to implement, particularly when there is a large number of sessions to be executed simultaneously in the wireless communication device. One known solution to meet the demands of multi-task and real time processing is to make use of several processors in the same device. Thus, different sessions can be executed by different processors. However, this involves e.g. the drawback that when the number of processors is increased, the power consumption of the device is also increased, which should be avoided particularly in portable devices. Furthermore, in systems with several processors, arrangements are needed, whereby different application sessions are allocated to be executed by different processors.
For embedded applications, multi-task systems have been developed, in which the execution of different sessions can be scheduled, and each session can be allocated processing time when necessary. However, such embedded applications are designed for specific purposes only, wherein it is largely possible to determine in advance, which sessions are to be executed under different conditions and which resources will be needed at each time. In this case, the scheduling of the sessions can be determined in advance. In addition, these applications do not include an operating system. Such multi-task systems are not suitable for use in wireless communication devices, in which it is not possible to determine, in advance, all the different use cases and the related resource needs.
Considerable problems in multi-task systems include the management and scheduling of resource reservations as well as the management and scheduling of application sessions, in other words, the synchronization of the allocation of the processor and other types of resources, to meet the demands of different sessions. However, these problems cannot be solved separately, wherein it is difficult to find suitable solutions for both problems.